
import com.thoughtworks.selenium.*;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import java.util.regex.Pattern;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Date;

public class crearTorneo extends SeleneseTestCase {
	private Connection connect = null;
	private Statement statement = null;
	private PreparedStatement preparedStatement = null;
	private ResultSet resultSet = null;

	@Before
	public void setUp() throws Exception {
		selenium = new DefaultSelenium("localhost", 4444, "*chrome", "http://localhost:8081");
		/*selenium = new DefaultSelenium("localhost", 4444,
				"*firefox /home/gustavo/Programas/firefox/firefox",
				"http://localhost/");*/
		selenium.start();
	}

	@Test
	public void testCrearTorneo() throws Exception {
		// Cuando da OK
		selenium.open("/Miscore/");
		selenium.click("link=Ingresar");
		selenium.waitForPageToLoad("30000");
		selenium.type("name=usuario", "prueba");
		selenium.type("name=pass", "1qazxsw2");
		selenium.click("css=input.btn_ingresar");
		selenium.waitForPageToLoad("30000");
		selenium.type("name=nombre", "prueba1");
		selenium.click("css=input[type=\"submit\"]");
		selenium.waitForPageToLoad("30000");
		assertTrue((selenium.isTextPresent("satisfactoriamente")));
		//
		// Cuando da ERROR
		selenium.open("/Miscore/");
		selenium.click("link=Ingresar");
		selenium.waitForPageToLoad("30000");
		selenium.type("name=usuario", "prueba");
		selenium.type("name=pass", "1qazxsw2");
		selenium.click("css=input.btn_ingresar");
		selenium.waitForPageToLoad("30000");
		selenium.type("name=nombre", "prueba1");
		selenium.click("css=input[type=\"submit\"]");
		selenium.waitForPageToLoad("30000");
		assertTrue((selenium.isTextPresent("Error")));
		assertTrue(consulta());

	}

	public boolean consulta() throws Exception {
		Connection conn = null;
		String url = "jdbc:mysql://localhost:3306/";
		String dbName = "mydb";
		String driver = "com.mysql.jdbc.Driver";
		String userName = "root";
		String password = "";
		try {
			Class.forName(driver).newInstance();
			conn = DriverManager
					.getConnection(url + dbName, userName, password);
			statement = conn.createStatement();
			resultSet = statement.executeQuery("select * from torneo");
			comparar(resultSet);
			System.out.println("Connected to the database");
			conn.close();
			System.out.println("Disconnected from database");
			return true;

		} catch (Exception e) {
			e.printStackTrace();
			return false;

		}
	}

	private void comparar(ResultSet resultSet) throws SQLException {

		while (resultSet.next()) {
			int id = resultSet.getInt("id_torneo");
			String nombre = resultSet.getString("nombre_torneo");
			String estado = resultSet.getString("estado");
			String id_sistema_juego = resultSet.getString("id_sistema_juego");
			String id_usuario = resultSet.getString("id_usuario");

			if (estado.equals("1") && nombre.equals("prueba1")
					&& id_sistema_juego.equals("1") && id_usuario.equals("1")) {
				System.out.println("entre");
				assertTrue(nombre.equals("prueba1"));
			}
		}
	}

	@After
	public void tearDown() throws Exception {
		selenium.stop();

	}

}
